package fr.bordeaux1.planingdesetudiants.view;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;

public class CompositUes extends Composite implements IOnglet {
	IFenetrePrincipale fenetrePrincipale;
	private Composite compoActuel = null;

	public CompositUes(Composite arg0, int arg1,
			IFenetrePrincipale fenetrePrincipale) {
		super(arg0, arg1);

		this.fenetrePrincipale = fenetrePrincipale;
		setLayout(new GridLayout(3, false));
		// setLayout(new FormLayout());

		Composite composite = new Composite(this, SWT.NONE);
		composite.setLayout(new GridLayout(2, false));
		GridData gd_composite = new GridData(SWT.FILL, SWT.FILL, false, false,
				1, 1);
		gd_composite.heightHint = 312;
		gd_composite.widthHint = 253;

		composite.setLayoutData(gd_composite);

		Group zoneGrp = new Group(composite, SWT.NONE);
		zoneGrp.setText("Groupe");
		zoneGrp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
		Button btnAjoutgroupe = new Button(zoneGrp, SWT.NONE);
		btnAjoutgroupe.setLocation(10, 35);
		btnAjoutgroupe.setSize(100, 30);
		btnAjoutgroupe.setText("Ajouter");
		btnAjoutgroupe.addMouseListener(new MouseAdapter() {

			public void mouseUp(MouseEvent arg0) {

				instanceComposit(false, true, false, false, false, false);
				layout();

			}
		});

		Button btnSupgroupe = new Button(zoneGrp, SWT.NONE);
		btnSupgroupe.setLocation(133, 35);
		btnSupgroupe.setSize(100, 30);
		btnSupgroupe.setText("Supprimer");
		btnSupgroupe.addMouseListener(new MouseAdapter() {

			public void mouseUp(MouseEvent arg0) {

				instanceComposit(false, false, false, true, false,false);
				layout();

			}
		});
		

		Button btnListergroupe = new Button(zoneGrp, SWT.NONE);
		btnListergroupe.setLocation(10, 70);
		btnListergroupe.setSize(100, 30);
		btnListergroupe.setText("Lister/Modifier");
		btnListergroupe.addMouseListener(new MouseAdapter() {

			public void mouseUp(MouseEvent arg0) {

				instanceComposit(false, false, false, false, true,false);

				layout();
			}
		});

		Group zoneCours = new Group(composite, SWT.NONE);
		zoneCours.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2,
				1));
		zoneCours.setText("Cours");

		Button btnAjoutcours = new Button(zoneCours, SWT.NONE);
		btnAjoutcours.setLocation(10, 35);
		btnAjoutcours.setSize(100, 30);
		btnAjoutcours.setText("Ajouter");
		btnAjoutcours.addSelectionListener(new SelectionListener() {
				
			@Override
			public void widgetSelected(SelectionEvent arg0) {
				instanceComposit(true, false, false, false, false, false);
				layout();
			}
			
			@Override
			public void widgetDefaultSelected(SelectionEvent arg0) {
				
			}
		});
		

		Button btnSupcours = new Button(zoneCours, SWT.NONE);
		btnSupcours.setLocation(133, 35);
		btnSupcours.setSize(100, 30);
		btnSupcours.setText("Supprimer");
		btnSupcours.addMouseListener(new MouseAdapter() {

			public void mouseUp(MouseEvent arg0) {

				instanceComposit(false, false, true, false, false,false);

				layout();
			}
		});
		
		Button btnListercours = new Button(zoneCours, SWT.NONE);
		btnListercours.setLocation(10, 70);
		btnListercours.setSize(100, 30);
		btnListercours.setText("Lister/Modifier");
		btnListercours.addMouseListener(new MouseAdapter() {

			public void mouseUp(MouseEvent arg0) {

				instanceComposit(false, false, false, false, false, true);

				layout();
			}
		});
	}

	public Composite instanceComposit(boolean cour, boolean addGroupe,
			boolean supCours, boolean supGroup, boolean listerGroup, boolean listerCours) {
		if (cour) {
			if (compoActuel != null)
				compoActuel.dispose();
			compoActuel = new AddCours(this, SWT.NONE, fenetrePrincipale);

			compoActuel.setVisible(true);
			compoActuel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
					true, 1, 3));
			layout();
			return compoActuel;
		}
		if (addGroupe) {
			if (compoActuel != null)
				compoActuel.dispose();
			compoActuel = new AddGroup(this, SWT.NONE, fenetrePrincipale);
			compoActuel.setVisible(true);
			compoActuel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
					true, 1, 3));
			layout();
			return compoActuel;

		}
		if (supCours) {
			if (compoActuel != null)
				compoActuel.dispose();
			compoActuel = new DeleteCours(this, SWT.NONE, fenetrePrincipale);
			compoActuel.setVisible(true);
			layout();
			return compoActuel;

		}
		if (supGroup) {
			if (compoActuel != null)
				compoActuel.dispose();
			compoActuel = new DeleteGroup(this, SWT.NONE, fenetrePrincipale);
			compoActuel.setVisible(true);
			layout();
			return compoActuel;

		}
		if (listerGroup) {
			if (compoActuel != null)
				compoActuel.dispose();
			compoActuel = new ListerGroupes(this, SWT.NONE, fenetrePrincipale);
			compoActuel.setVisible(true);
			compoActuel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
					true, 1, 3));
			layout();
			return compoActuel;

		}
		if (listerCours) {
			if (compoActuel != null)
				compoActuel.dispose();
			compoActuel = new ListerCours(this, SWT.NONE, fenetrePrincipale);
			compoActuel.setVisible(true);
			compoActuel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
					true, 1, 3));
			layout();
			return compoActuel;
		}
		return null;
	}

	public void refreshData() {
	}
}
